<?php

header("Content-type:text/html;charset=utf-8");
//启用事物回滚操作

//链接数据库mysqli
$_mysqli = new mysqli('localhost','root','root','mysqli');

//数据库链接时发生的错误
if(mysqli_connect_errno()){
	echo '数据库链接错误，错误信息是：'.mysqli_connect_error();
	exit();
}

//设置字符集
$_mysqli->set_charset('utf8');


//关闭自动提交（手动提交）
$_mysqli->autocommit(false);


//创建两个SQL语句
$sql = '';
$sql .= "UPDATE friend SET num = num - 50 WHERE id = 1;";
$sql .= "UPDATE flower SET num = num + 50 WHERE id = 1";

//执行多条SQL语句
//只要两个SQL语句都成功了，就手动提交给数据库
//否则，就回滚，撤销之前的有效操作
if($_mysqli->multi_query($sql)){
	//通过影响的行数，来判断SQL语句是否执行成功
	//如果是$_success==false就说明SQL语句有误，那么就执行回滚，否则就手工提交
	// if($_mysqli->affected_rows == 1){
 //        $_success == true;
	// }else{
	// 	$_success == false;
	// }
	

	//执行第一条sql语句
	$_success = $_mysqli->affected_rows == 1 ?true:false;

	//下移指针，
	$_mysqli->next_result();

	//执行第二条sql语句
    $_success2 = $_mysqli->affected_rows == 1 ?true:false;

    //判断如果两条sql都执行成功，
    if($_success  && $_success2 ){
    	//执行手动提交数据
    	$_mysqli->commit();
    	echo '提交成功';

    }else{
    	//否则，执行回滚
    	$_mysqli->rollBack();
    	echo '执行失败，所有操作归零';
    }

}else{
	echo '第一条SQL语句执行错误';
}


//再开启自动提交
$_mysqli->autocommit(true);








